<?php
namespace app\api\model;

use app\model\Base;

class ModeOrders extends Base
{
    public function modeOrdersProduct()
    {
        return $this->hasOne(ModeProduct::class, 'id', 'product_id')->bind([
            'cover'=>'img',
            'amount'=>'price',
            'goods_title'=>'title',
        ]);
    }

    public function getGoodsCoverAttr($value, $data)
    {
        return $this::getOssUrl() . $data['cover'];
    }

    public function getStatusFormatAttr($value, $data)
    {
        $str = '';
        switch ($data['status'])
        {
            case 'paying':
                $str = "待付款";
                break;
            case 'payed':
                $str = "已支付";
                break;
        }
        return $str;
    }

    public function getReleaseStatusAttr($value, $data)
    {
        $str = '释放中';
        if($data['remain_earnings'] == 0){
            $str = '已结束';
        }
        return $str;
    }

    public function getCountAttr($value, $data)
    {
        return $data['num'];
    }

    public function getParamsAttr($value, $data)
    {
        return [
            'id'=>$data['id']
        ];
    }

//    public static function deduce($ordersId, $userId, $amount, $alias = 'remain_earnings', $level1 = 0, $level2 = 0, $des = '')
//    {
//        /**
//         * TODO
//         * $type 判断是否需要手续费
//         * 手续费比例后台配置，直接获取后台手续费比例
//         * 加手续费字段，扣除手续费逻辑
//         */
//        $info = self::find($ordersId);
//        $add['user_id'] = $userId;
//        $add['orders_id'] = $ordersId;
//        $add['amount'] = -$amount;
//        $add['type'] = Base::$walletTypeArray[$level1][$level2];
//        $add['content'] = $des == '' ? Base::$walletLogDesArray[$level1][$level2] : $des;
//        $add['before'] = $info[$alias];
//
//        $update = [];
//        $update[$alias] = $add['before'] - $amount;
//
//        $info->save($update);
//        switch ($alias)
//        {
//            case 'remain_earnings':{
//                //剩余收益
//                ModeOrdersLog::create($add);
//            }
//                break;
//        }
//        return true;
//    }
}